﻿using System;

using Vibstudio.X4NET.Xml.Linq;
using Vibstudio.X4NET.Xml.XPath;

namespace Vibstudio.X4NET.Xml.Extraction
{
    public interface IXmlExtraction
    {
        OperationResult<XPathList> GetXPaths(string xml, bool positionalFormat = true, bool textualFormat = false, bool omitDeclarations = false);

        OperationResult<XPathList> GetXPaths(byte[] bytes, bool positionalFormat = true, bool textualFormat = false, bool omitDeclarations = false);
        
        OperationResult<XPathList> GetXPaths(XDocument document, bool positionalFormat = true, bool textualFormat = false, bool omitDeclarations = false);

        OperationResult<XPathList> GetXPaths(Uri uri, bool positionalFormat = true, bool textualFormat = false, bool omitDeclarations = false);
    }
}
